The invention relates to systems and methods for controlling central processing unit (CPU) loads, and more particularly to systems and methods for managing such CPU loads in processing communication calls.
Nowadays, virtually everyone is xe2x80x9cconnectedxe2x80x9d via various communications services such as telephone, pager and e-mail services. The telephone service includes the plain old telephone service (POTS), which is the most common of all of the communication services, and proliferating wireless phone services including an advanced mobile phone service (AMPS), a personal communications service (PCS), a global system for mobile communications (GSM) service, etc.
The efficiency of the communications services invariably depends on the speed of call processing which involves establishing and maintaining communications connections. To increase such an efficiency, multiple processors have been employed in a communications system to perform data processing operations necessary to set up and control each call in the system. For example, in a prior art wireless phone system, these processors are connected in a distributed processing arrangement where each processor is capable of performing identical call processing functions so that any new call can be served by any of the processors. However, to maximize system capacity and minimize call setup delays, it is important that each new call is allocated to an appropriate processor to balance the aggregate processing load. In addition, it is important that the processors respond to an overload condition in such a way that the communications traffic handled thereby is equal or at least close to the maximum amount of traffic that the system can handle when not in an overload condition, and at the same time the disposition of additional calls does not interfere with the processing of existing calls or those new calls already accepted by the system.
The above-identified concerns about call processing load control have been addressed, e.g., in U.S. Pat. No. 4,974,256 issued Nov. 27, 1990 to Cyr et al. Specifically, the Cyr patent discloses a technique for load balancing and overload control in a distributed processing communication system. In accordance with the disclosed technique, also known as the xe2x80x9cgo/no-go sequencexe2x80x9d technique, the average CPU load of each processor is measured periodically and based on this CPU load, the fraction of new calls to be allocated to each processor during the next period is adjusted in such a manner as to attempt to equalize the CPU loads of all the processors during that period.
It may be advantageous to apply the prior art technique described above in a distributed processing arrangement where each processor performs identical functions to manage the CPU load of the processor. However, such a prior art technique is not particularly applicable to a processing arrangement where a central processor is connected to multiple child processors in hierarchial relation. In this relation, the central processor is in communication with each child processor, and centrally performs certain tasks which otherwise need to be performed by each child processor. For example, in the GSM service where the service area is divided into multiple cells, these cells are served by child processors, e.g., cell workstations (CEWSs), in a base station controller. A central processor, e.g., a common workstation (COWS), is connected to the CEWSs in a hierarchial processing arrangement where the COWS performs call processing and other tasks common to all cells served by the CEWSs. The CEWSs perform other well known call processing functions such as call setups, paging message distributions, etc., to realize the GSM service.
Because of the different roles played by the central processor and each child processor in a hierarchial processing arrangement, as opposed to the same role played by each processor in a distributed processing arrangement, in accordance with the invention, two different routines are designed to identify CPU overload conditions of the central processor and each child processor, respectively. In addition, actions taken by the central processor while in CPU overload to reduce its CPU load are different from those taken by a child processor while in CPU overload. Further, the central processor may cause each child processor to take a selected action as a function of both the severity of the CPU load of the central processor and that of the child processor to adjust the respective CPU loads. In the above GSM service example, the selected action may involve having each CEWS deactivate the mobile units which are assigned to certain access classes in the cells served by the CEWS.